package top.yxqz.springmvc.ajax.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import top.yxqz.springmvc.ajax.pojo.Student;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author: 余小小
 * @date: 2023/5/6
 * @description： ResponseBody 可以写在方法上，也可以写在类上
 * 方法上：此接口返回数据
 * 类上：此controller的所有接口返回数据
 * RestController:controller+ResponseBody
 */
//@RestController
@Controller
@RequestMapping("/axios")
public class AxiosController {
    /**
     * 跳转到ajaxdemo的页面
     * uri: /axios/
     */
    @GetMapping("/")
    public String goAJAXPage() {
        return "ajax_page";
    }


    /**
     * 以前的方式响应数据
     * uri: /axios/old
     */
    @PostMapping("/old")
    public void dataByResponse(HttpServletResponse response) throws IOException {
//        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().println("hello  response data");
        response.getWriter().println("呵呵哈哈哈");
    }


    /**
     * 使用RequestBody接受前端发送的请求体数据
     * uri:/axios/mvc
     */
    @PostMapping("/mvc")
    public void dataByRequestBody(HttpServletResponse response, @RequestBody String getQD) throws IOException {
        System.out.println("getQD:" + getQD);
        response.getWriter().println("第一次使用RequestBody注解");
    }

    /**
     * 使用RequestBody注解处理对象消息体
     *
     * @param response
     * @param student
     */
    @PostMapping("/mvc2")
    public void method(HttpServletResponse response, @RequestBody Student student) throws IOException {
        System.out.println(student);
        response.getWriter().println("第二次使用RequestBody注解,处理对象请求体");
    }

    /**
     * 一个数据
     */
    @GetMapping("/resp")
    @ResponseBody
    public String respMethod() {
        return "www.yxqz.top";
    }


    /**
     * 返回对象
     * uri: /axios/obj
     */
    @GetMapping("/obj")
    @ResponseBody
    public Student methodName() {
        Student student = new Student("刘备", "111111", 22, "男");
        return student;
    }

}
